﻿Public Class DentidadFin

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String) As List(Of EentidadFin)
        Dim entidades As List(Of EentidadFin) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_entidadFin_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            entidades = New List(Of EentidadFin)
                            Dim entidad As EentidadFin = Nothing
                            Do While dr.Read
                                entidad = New EentidadFin( _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("nomRepUno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaternoUno")), _
                                    dr.GetString(dr.GetOrdinal("apePaternoUno")), _
                                    dr.GetString(dr.GetOrdinal("cargoRepUno")), _
                                    dr.GetString(dr.GetOrdinal("telRepUno")), _
                                    dr.GetString(dr.GetOrdinal("nomRepDos")), _
                                    dr.GetString(dr.GetOrdinal("apeMaternoDos")), _
                                    dr.GetString(dr.GetOrdinal("apePaternoDos")), _
                                    dr.GetString(dr.GetOrdinal("cargoRepDos")), _
                                    dr.GetString(dr.GetOrdinal("telRepDos")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcInteres")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcCuotaInic")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaInteresActiva")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaSegurpDesgravamen")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaEfectivaAnual")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaEfectivaMensual")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoBono")), _
                                    dr.GetDecimal(dr.GetOrdinal("portesComisiones")), _
                                    dr.GetDecimal(dr.GetOrdinal("factorSeguro")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                entidades.Add(entidad)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return entidades
    End Function
    Public Shared Function SeleccionarXEstado(ByVal descEmpresa As String) As List(Of EentidadFin)
        Dim entidades As List(Of EentidadFin) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_entidadFin_selXEstado", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            entidades = New List(Of EentidadFin)
                            Dim entidad As EentidadFin = Nothing
                            Do While dr.Read
                                entidad = New EentidadFin( _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("nomRepUno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaternoUno")), _
                                    dr.GetString(dr.GetOrdinal("apePaternoUno")), _
                                    dr.GetString(dr.GetOrdinal("cargoRepUno")), _
                                    dr.GetString(dr.GetOrdinal("telRepUno")), _
                                    dr.GetString(dr.GetOrdinal("nomRepDos")), _
                                    dr.GetString(dr.GetOrdinal("apeMaternoDos")), _
                                    dr.GetString(dr.GetOrdinal("apePaternoDos")), _
                                    dr.GetString(dr.GetOrdinal("cargoRepDos")), _
                                    dr.GetString(dr.GetOrdinal("telRepDos")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcInteres")), _
                                    dr.GetDecimal(dr.GetOrdinal("porcCuotaInic")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaInteresActiva")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaSegurpDesgravamen")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaEfectivaAnual")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaEfectivaMensual")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoBono")), _
                                    dr.GetDecimal(dr.GetOrdinal("portesComisiones")), _
                                    dr.GetDecimal(dr.GetOrdinal("factorSeguro")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                entidades.Add(entidad)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return entidades
    End Function
    Public Shared Function SeleccionarXMoneda(ByVal descEmpresa As String, ByVal idMoneda As Integer) As List(Of EentidadFin)
        Dim entidades As List(Of EentidadFin) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_entidadFin_selXMoneda", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idMoneda", SqlDbType.Int).Value = idMoneda
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            entidades = New List(Of EentidadFin)
                            Dim entidad As EentidadFin = Nothing
                            Do While dr.Read
                                entidad = New EentidadFin( _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")))
                                entidades.Add(entidad)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return entidades
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pentidadFin As EentidadFin) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_entidadFin_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@descEntidadFin", SqlDbType.VarChar, 55).Value = pentidadFin.descEntidadFin
                cmd.Parameters.Add("@nomRepUno", SqlDbType.VarChar, 55).Value = pentidadFin.nomRepUno
                cmd.Parameters.Add("@apePaternoUno", SqlDbType.VarChar, 55).Value = pentidadFin.apePaternoUno
                cmd.Parameters.Add("@apeMaternoUno", SqlDbType.VarChar, 55).Value = pentidadFin.apeMaternoUno
                cmd.Parameters.Add("@cargoRepUno", SqlDbType.VarChar, 55).Value = pentidadFin.cargoRepUno
                cmd.Parameters.Add("@telRepUno", SqlDbType.VarChar, 55).Value = pentidadFin.telRepUno
                cmd.Parameters.Add("@nomRepDos", SqlDbType.VarChar, 55).Value = pentidadFin.nomRepDos
                cmd.Parameters.Add("@apePaternoDos", SqlDbType.VarChar, 55).Value = pentidadFin.apePaternoDos
                cmd.Parameters.Add("@apeMaternoDos", SqlDbType.VarChar, 55).Value = pentidadFin.apeMaternoDos
                cmd.Parameters.Add("@cargoRepDos", SqlDbType.VarChar, 55).Value = pentidadFin.cargoRepDos
                cmd.Parameters.Add("@telRepDos", SqlDbType.VarChar, 55).Value = pentidadFin.telRepDos
                cmd.Parameters.Add("@porcInteres", SqlDbType.Decimal, 2, 2).Value = pentidadFin.porcInteres
                cmd.Parameters.Add("@porcCuotaInic", SqlDbType.Decimal, 2, 2).Value = pentidadFin.porcCuotaInic
                cmd.Parameters.Add("@tasaInteresActiva", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaInteresActiva
                cmd.Parameters.Add("@tasaSegurpDesgravamen", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaSegurpDesgravamen
                cmd.Parameters.Add("@tasaEfectivaAnual", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaEfectivaAnual
                cmd.Parameters.Add("@tasaEfectivaMensual", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaEfectivaMensual
                cmd.Parameters.Add("@montoBono", SqlDbType.Decimal, 15, 2).Value = pentidadFin.montoBono
                cmd.Parameters.Add("@portesComisiones", SqlDbType.Decimal, 7, 4).Value = pentidadFin.portesComisiones
                cmd.Parameters.Add("@factorSeguro", SqlDbType.Decimal, 7, 4).Value = pentidadFin.factorSeguro
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pentidadFin.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pentidadFin As EentidadFin) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_entidadFin_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pentidadFin.idEntidadFin
                cmd.Parameters.Add("@descEntidadFin", SqlDbType.VarChar, 55).Value = pentidadFin.descEntidadFin
                cmd.Parameters.Add("@nomRepUno", SqlDbType.VarChar, 55).Value = pentidadFin.nomRepUno
                cmd.Parameters.Add("@apePaternoUno", SqlDbType.VarChar, 55).Value = pentidadFin.apePaternoUno
                cmd.Parameters.Add("@apeMaternoUno", SqlDbType.VarChar, 55).Value = pentidadFin.apeMaternoUno
                cmd.Parameters.Add("@cargoRepUno", SqlDbType.VarChar, 55).Value = pentidadFin.cargoRepUno
                cmd.Parameters.Add("@telRepUno", SqlDbType.VarChar, 55).Value = pentidadFin.telRepUno
                cmd.Parameters.Add("@nomRepDos", SqlDbType.VarChar, 55).Value = pentidadFin.nomRepDos
                cmd.Parameters.Add("@apePaternoDos", SqlDbType.VarChar, 55).Value = pentidadFin.apePaternoDos
                cmd.Parameters.Add("@apeMaternoDos", SqlDbType.VarChar, 55).Value = pentidadFin.apeMaternoDos
                cmd.Parameters.Add("@cargoRepDos", SqlDbType.VarChar, 55).Value = pentidadFin.cargoRepDos
                cmd.Parameters.Add("@telRepDos", SqlDbType.VarChar, 55).Value = pentidadFin.telRepDos
                cmd.Parameters.Add("@porcInteres", SqlDbType.Decimal, 2, 2).Value = pentidadFin.porcInteres
                cmd.Parameters.Add("@porcCuotaInic", SqlDbType.Decimal, 2, 2).Value = pentidadFin.porcCuotaInic
                cmd.Parameters.Add("@tasaInteresActiva", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaInteresActiva
                cmd.Parameters.Add("@tasaSegurpDesgravamen", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaSegurpDesgravamen
                cmd.Parameters.Add("@tasaEfectivaAnual", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaEfectivaAnual
                cmd.Parameters.Add("@tasaEfectivaMensual", SqlDbType.Decimal, 7, 4).Value = pentidadFin.tasaEfectivaMensual
                cmd.Parameters.Add("@montoBono", SqlDbType.Decimal, 15, 2).Value = pentidadFin.montoBono
                cmd.Parameters.Add("@portesComisiones", SqlDbType.Decimal, 7, 4).Value = pentidadFin.portesComisiones
                cmd.Parameters.Add("@factorSeguro", SqlDbType.Decimal, 7, 4).Value = pentidadFin.factorSeguro
                cmd.Parameters.Add("@estado", SqlDbType.Int).Value = pentidadFin.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pentidadFin.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pentidadFin As EentidadFin) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_entidadFin_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pentidadFin.idEntidadFin
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pentidadFin.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
